{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5fbc2d16-59f9-4be3-b93e-1a5440c7efd0",
   "metadata": {},
   "source": [
    "# Tutorial 1 - Getting Started"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1afe6a1e-3ab4-4f3f-ad47-f6cd66419504",
   "metadata": {},
   "source": [
    "In this first tutorial notebook we will be creating a simple KAN model and train it to perform function fitting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0a2ef2a6-f681-427f-8252-ade2111ce0e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "from jaxkan.KAN import KAN\n",
    "\n",
    "import jax\n",
    "import jax.numpy as jnp\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import mean_squared_error\n",
    "\n",
    "from flax import nnx\n",
    "import optax\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60e70a5d-0340-4bdc-af4e-150d0098a87e",
   "metadata": {},
   "source": [
    "## Data Generation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "166ad90d-430e-45ca-86a8-e6e4dbc1c943",
   "metadata": {},
   "source": [
    "We begin with the generation of some mock data. Consider the function $f(x, y) = x^2 + 2\\exp(y)$. We will attempt to fit a KAN model on synthetic data generated from this function and then evaluate its performance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b986e75a-6d4a-402f-bea7-36d13f4a7866",
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x,y):\n",
    "    return x**2 + 2*jnp.exp(y)\n",
    "\n",
    "def generate_data(minval=-1, maxval=1, num_samples=1000, seed=42):\n",
    "    key = jax.random.PRNGKey(seed)\n",
    "    x_key, y_key = jax.random.split(key)\n",
    "\n",
    "    x1 = jax.random.uniform(x_key, shape=(num_samples,), minval=minval, maxval=maxval)\n",
    "    x2 = jax.random.uniform(y_key, shape=(num_samples,), minval=minval, maxval=maxval)\n",
    "\n",
    "    y = f(x1, x2).reshape(-1, 1)\n",
    "    X = jnp.stack([x1, x2], axis=1)\n",
    "    \n",
    "    return X, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "db8bf4bc-49fe-4014-94aa-4e5dbf632369",
   "metadata": {},
   "outputs": [],
   "source": [
    "seed = 42\n",
    "\n",
    "X, y = generate_data(minval=-1, maxval=1, num_samples=1000, seed=seed)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "485197f9-2e41-481e-a2cd-977452622ff3",
   "metadata": {},
   "source": [
    "## Preprocessing"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c26fac97-6716-47ff-b8db-824df7c6aae2",
   "metadata": {},
   "source": [
    "With the data at hand, we may perform the usual train/test splitting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ad91a42a-ffe8-4b8c-b1a7-cc9b60dfe5c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set size: (800, 2)\n",
      "Test set size: (200, 2)\n"
     ]
    }
   ],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=seed)\n",
    "\n",
    "print(\"Training set size:\", X_train.shape)\n",
    "print(\"Test set size:\", X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7a3aa9e-3088-42b1-8a09-f0f5efca9e1a",
   "metadata": {},
   "source": [
    "Note that the shapes of the objects are `(batch, input_dim)`."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e9d9bba-71e2-4d5b-95b1-36167fb70c1a",
   "metadata": {},
   "source": [
    "## KAN Model"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2fd54c6c-3d28-4864-af38-3b22875d0f0a",
   "metadata": {},
   "source": [
    "Selecting and initializing a jaxKAN model is straightforward. One needs to define the following arguments, which are universal for all KAN Layer types:\n",
    "\n",
    "- `layer_dims`: The dimensions for each of the network's layers' input/output nodes.\n",
    "- `layer_type`: The type of KAN layer to use, which defaults to `base`.\n",
    "- `seed`: An integer for reproducibility.\n",
    "\n",
    "Apart from these, there is also the `required_parameters` argument, which is simply a dictionary with keys that correspond to additional parameters of the specific chosen layer.\n",
    "\n",
    "We will use a Chebychev-based KAN for the present example."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b350b56f-5daa-411f-9090-b544760c34ef",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[38;2;79;201;177mKAN\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 283 (1.1 KB), RngState: 6 (36 B), Total: 289 (1.2 KB)\u001b[0m\n",
      "  \u001b[38;2;156;220;254mlayer_type\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'chebyshev'\u001b[0m,\n",
      "  \u001b[38;2;156;220;254mlayers\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m[\u001b[0m\u001b[38;2;79;201;177mChebyshevLayer\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 66 (264 B), RngState: 2 (12 B), Total: 68 (276 B)\u001b[0m\n",
      "    \u001b[38;2;156;220;254mn_in\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m2\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mn_out\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mD\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m5\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mflavor\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'exact'\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mresidual\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mrngs\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngs\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mdefault\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngStream\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "        \u001b[38;2;156;220;254mkey\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngKey\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (8 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray((), dtype=key<fry>) overlaying:\n",
      "          [ 0 42],\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "        \u001b[38;2;156;220;254mcount\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngCount\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray(1, dtype=uint32),\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m\n",
      "      \u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mbias\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 6 (24 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_ext\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_basis\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 60 (240 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m2\u001b[0m, \u001b[38;2;182;207;169m5\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m\n",
      "  \u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;79;201;177mChebyshevLayer\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 186 (744 B), RngState: 2 (12 B), Total: 188 (756 B)\u001b[0m\n",
      "    \u001b[38;2;156;220;254mn_in\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mn_out\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mD\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m5\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mflavor\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'exact'\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mresidual\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mrngs\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngs\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mdefault\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngStream\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "        \u001b[38;2;156;220;254mkey\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngKey\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (8 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray((), dtype=key<fry>) overlaying:\n",
      "          [ 0 42],\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "        \u001b[38;2;156;220;254mcount\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngCount\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray(1, dtype=uint32),\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m\n",
      "      \u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mbias\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 6 (24 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_ext\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_basis\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 180 (720 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m5\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m\n",
      "  \u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;79;201;177mChebyshevLayer\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 31 (124 B), RngState: 2 (12 B), Total: 33 (136 B)\u001b[0m\n",
      "    \u001b[38;2;156;220;254mn_in\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mn_out\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m1\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mD\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m5\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mflavor\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'exact'\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mresidual\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mrngs\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngs\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mdefault\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngStream\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "        \u001b[38;2;156;220;254mkey\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngKey\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (8 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray((), dtype=key<fry>) overlaying:\n",
      "          [ 0 42],\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "        \u001b[38;2;156;220;254mcount\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngCount\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray(1, dtype=uint32),\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m\n",
      "      \u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mbias\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray([0.], dtype=float32)\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_ext\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_basis\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 30 (120 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m1\u001b[0m, \u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m5\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m\n",
      "  \u001b[38;2;255;213;3m)\u001b[0m\u001b[38;2;255;213;3m]\u001b[0m\n",
      "\u001b[38;2;255;213;3m)\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "# Initialize a KAN model\n",
    "n_in = X_train.shape[1]\n",
    "n_out = y_train.shape[1]\n",
    "n_hidden = 6\n",
    "\n",
    "layer_dims = [n_in, n_hidden, n_hidden, n_out]\n",
    "req_params = {'D': 5, 'flavor': 'exact'}\n",
    "\n",
    "model = KAN(layer_dims = layer_dims,\n",
    "            layer_type = 'chebyshev',\n",
    "            required_parameters = req_params,\n",
    "            seed = 42\n",
    "           )\n",
    "\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f681d135-c885-4e59-87d7-1ea16a157c50",
   "metadata": {},
   "source": [
    "## Training"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9044aebb-696d-42df-956f-9aa94078588c",
   "metadata": {},
   "source": [
    "To train the model on the data, we must first define an optimizer using the `optax` framework. For this example, we will define a simple Adam optimizer and wrap the optax optimizer and the model in a `nnx.Optimizer` object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6723a412-c313-453c-aa88-9274687ee54e",
   "metadata": {},
   "outputs": [],
   "source": [
    "opt_type = optax.adam(learning_rate=0.001)\n",
    "\n",
    "optimizer = nnx.Optimizer(model, opt_type)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eaac2ddc-ad53-40db-804b-7f54f3000476",
   "metadata": {},
   "source": [
    "We will then define the training step and decorate it with `@nnx.jit` to make it faster. The loss function will be a simple MSE Loss."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "f18ab849-3c05-418a-a30b-3928f77c332d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define train loop\n",
    "@nnx.jit\n",
    "def train_step(model, optimizer, X_train, y_train):\n",
    "\n",
    "    def loss_fn(model):\n",
    "        residual = model(X_train) - y_train\n",
    "        loss = jnp.mean((residual)**2)\n",
    "\n",
    "        return loss\n",
    "    \n",
    "    loss, grads = nnx.value_and_grad(loss_fn)(model)\n",
    "    optimizer.update(grads)\n",
    "    \n",
    "    return loss"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15698049-2246-458a-9a0b-9e0c0c4c6485",
   "metadata": {},
   "source": [
    "At this point we may begin training the model and keep some logs, e.g., the training loss per epoch."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b06282a5-8899-4801-9c9e-d8b73b55d74a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize train_losses\n",
    "num_epochs = 2000\n",
    "train_losses = jnp.zeros((num_epochs,))\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    # Calculate the loss\n",
    "    loss = train_step(model, optimizer, X_train, y_train)\n",
    "    \n",
    "    # Append the loss\n",
    "    train_losses = train_losses.at[epoch].set(loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "faab949e-dadb-4cec-bc13-63b10cb609c5",
   "metadata": {},
   "source": [
    "## Evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ebd10d7b-064a-4701-a8f3-6ec20281724f",
   "metadata": {},
   "source": [
    "First, we may plot the training losses to see if the model is indeed trained, i.e. backpropagation works as it should."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "86630d29-9b9f-452a-b2f1-399b02768829",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnAAAAGJCAYAAAAKZg7vAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAhBBJREFUeJztnXl4VNX5+D+TbbJvZCOQkBC2sARIgAjuJSqoKKgVkSqLlVbF6g9t3eqCa6stUhW1dcF9r2Dr1oJCbQUCSQhr2BO2kJCQfU9m7u+PfHNlSAghmZk7k/N+nifPM/fOnTvnc8/NzZt73/Mek6ZpGoIgCIIgCILb4GF0AwRBEARBEISzQwI4QRAEQRAEN0MCOEEQBEEQBDdDAjhBEARBEAQ3QwI4QRAEQRAEN0MCOEEQBEEQBDdDAjhBEARBEAQ3QwI4QRAEQRAEN0MCOEEQBEEQBDdDAjhBEGyYO3cuCQkJ3frsY489hslksm+DBOEMtJ13paWlRjdFEJyGBHCC4CaYTKYu/axdu9bophrC3LlzCQwMNLoZXULTNN59910uuOACQkND8ff3Z9SoUTz++OPU1tYa3bx2tAVIp/spKioyuomCoBxeRjdAEISu8e6779osv/POO6xatard+uTk5B59z2uvvYbVau3WZ3//+99z//339+j7ezsWi4Ubb7yRTz75hPPPP5/HHnsMf39//vvf/7J48WI+/fRTVq9eTXR0tNFNbccrr7zSYZAcGhrq/MYIguJIACcIbsIvfvELm+UNGzawatWqdutPpa6uDn9//y5/j7e3d7faB+Dl5YWXl1xWOuPZZ5/lk08+4d577+W5557T1y9YsIDrr7+e6dOnM3fuXL755huntqsr58l1111HRESEk1okCEJnyCNUQehFXHTRRYwcOZLs7GwuuOAC/P39efDBBwH44osvuOKKK4iNjcVsNpOUlMQTTzyBxWKx2cepOXAFBQWYTCb+9Kc/8be//Y2kpCTMZjPjx49n06ZNNp/tKAfOZDKxcOFCVq5cyciRIzGbzYwYMYJvv/22XfvXrl3LuHHj8PX1JSkpib/+9a92z6v79NNPSUtLw8/Pj4iICH7xi19w9OhRm22KioqYN28e/fv3x2w207dvX66++moKCgr0bbKysrjsssuIiIjAz8+PxMRE5s+f3+l319fX89xzzzFkyBCeeeaZdu9PmzaNOXPm8O2337JhwwYArrzySgYOHNjh/iZOnMi4ceNs1r333nu6X3h4ODfccAOHDx+22aaz86QnrF27FpPJxMcff8yDDz5ITEwMAQEBXHXVVe3aAF3rC4Bdu3Zx/fXXExkZiZ+fH0OHDuWhhx5qt11FRQVz584lNDSUkJAQ5s2bR11dnc02q1at4rzzziM0NJTAwECGDh1qF3dBcDbyr7Ig9DJOnDjB1KlTueGGG/jFL36hP4p76623CAwMZNGiRQQGBvL999/zyCOPUFVVZXMn6HR88MEHVFdX86tf/QqTycSzzz7LNddcw4EDB8541+5///sfn3/+ObfffjtBQUG88MILXHvttRw6dIg+ffoAsHnzZqZMmULfvn1ZvHgxFouFxx9/nMjIyJ4flP/jrbfeYt68eYwfP55nnnmG4uJi/vKXv/Djjz+yefNm/VHgtddey44dO7jzzjtJSEjg+PHjrFq1ikOHDunLl156KZGRkdx///2EhoZSUFDA559/fsbjUF5ezl133XXaO5U333wzy5cv58svv+Scc85h5syZ3HzzzWzatInx48fr2x08eJANGzbY9N1TTz3Fww8/zPXXX88vf/lLSkpKePHFF7ngggts/OD050lnlJWVtVvn5eXV7hHqU089hclk4r777uP48eMsXbqUjIwMcnNz8fPzA7reF1u3buX888/H29ubBQsWkJCQwP79+/nnP//JU089ZfO9119/PYmJiTzzzDPk5OTw+uuvExUVxR//+EcAduzYwZVXXklKSgqPP/44ZrOZffv28eOPP57RXRBcDk0QBLfkjjvu0E79Fb7wwgs1QHv11VfbbV9XV9du3a9+9SvN399fa2ho0NfNmTNHGzBggL6cn5+vAVqfPn20srIyff0XX3yhAdo///lPfd2jjz7ark2A5uPjo+3bt09ft2XLFg3QXnzxRX3dtGnTNH9/f+3o0aP6ur1792peXl7t9tkRc+bM0QICAk77flNTkxYVFaWNHDlSq6+v19d/+eWXGqA98sgjmqZpWnl5uQZozz333Gn3tWLFCg3QNm3adMZ2nczSpUs1QFuxYsVptykrK9MA7ZprrtE0TdMqKys1s9ms3XPPPTbbPfvss5rJZNIOHjyoaZqmFRQUaJ6entpTTz1ls922bds0Ly8vm/WdnScd0davHf0MHTpU327NmjUaoPXr10+rqqrS13/yyScaoP3lL3/RNK3rfaFpmnbBBRdoQUFBumcbVqu1Xfvmz59vs82MGTO0Pn366MvPP/+8BmglJSVd8hYEV0YeoQpCL8NsNjNv3rx269vufABUV1dTWlrK+eefT11dHbt27TrjfmfOnElYWJi+fP755wNw4MCBM342IyODpKQkfTklJYXg4GD9sxaLhdWrVzN9+nRiY2P17QYNGsTUqVPPuP+ukJWVxfHjx7n99tvx9fXV119xxRUMGzaMr776Cmg9Tj4+Pqxdu5by8vIO99V2d+jLL7+kubm5y22orq4GICgo6LTbtL1XVVUFQHBwMFOnTuWTTz5B0zR9u48//phzzjmH+Ph4AD7//HOsVivXX389paWl+k9MTAyDBw9mzZo1Nt9zuvOkM/7+97+zatUqm5/ly5e32+7mm2+2cbzuuuvo27cvX3/9NdD1vigpKeGHH35g/vz5umcbHT1W//Wvf22zfP7553PixAn9WLb12xdffNHtgTqC4CpIACcIvYx+/frh4+PTbv2OHTuYMWMGISEhBAcHExkZqQ+AqKysPON+T/0D2hbMnS7I6eyzbZ9v++zx48epr69n0KBB7bbraF13OHjwIABDhw5t996wYcP0981mM3/84x/55ptviI6O5oILLuDZZ5+1KZVx4YUXcu2117J48WIiIiK4+uqrWb58OY2NjZ22oS2oaQvkOqKjIG/mzJkcPnyY9evXA7B//36ys7OZOXOmvs3evXvRNI3BgwcTGRlp85OXl8fx48dtvud050lnXHDBBWRkZNj8TJw4sd12gwcPtlk2mUwMGjRIzyHsal+0BfgjR47sUvvOdI7OnDmTc889l1/+8pdER0dzww038Mknn0gwJ7glEsAJQi/j5DttbVRUVHDhhReyZcsWHn/8cf75z3+yatUqPTeoK3/APD09O1x/8l0hR3zWCO6++2727NnDM888g6+vLw8//DDJycls3rwZaA1IPvvsM9avX8/ChQs5evQo8+fPJy0tjZqamtPut63Ey9atW0+7Tdt7w4cP19dNmzYNf39/PvnkEwA++eQTPDw8+PnPf65vY7VaMZlMfPvtt+3ukq1atYq//vWvNt/T0Xni7pzpPPPz8+OHH35g9erV3HTTTWzdupWZM2dyySWXtBvMIwiujgRwgqAAa9eu5cSJE7z11lvcddddXHnllWRkZNg8EjWSqKgofH192bdvX7v3OlrXHQYMGADA7t272723e/du/f02kpKSuOeee/j3v//N9u3baWpq4s9//rPNNueccw5PPfUUWVlZvP/+++zYsYOPPvrotG1oG/34wQcfnDZgeOedd4DW0adtBAQEcOWVV/Lpp59itVr5+OOPOf/8820eNyclJaFpGomJie3ukmVkZHDOOeec4QjZj71799osa5rGvn379NHNXe2LttG327dvt1vbPDw8mDx5MkuWLGHnzp089dRTfP/99+0eMQuCqyMBnCAoQNudiZPveDU1NfHyyy8b1SQbPD09ycjIYOXKlRQWFurr9+3bZ7d6aOPGjSMqKopXX33V5lHnN998Q15eHldccQXQWg+toaHB5rNJSUkEBQXpnysvL29393DMmDEAnT5G9ff3595772X37t0dlsH46quveOutt7jsssvaBVwzZ86ksLCQ119/nS1bttg8PgW45ppr8PT0ZPHixe3apmkaJ06cOG277M0777xj85j4s88+49ixY3o+Y1f7IjIykgsuuIA333yTQ4cO2XxHd+7edjSKtiv9JgiuiJQREQQFmDRpEmFhYcyZM4ff/OY3mEwm3n33XZd6hPnYY4/x73//m3PPPZfbbrsNi8XCSy+9xMiRI8nNze3SPpqbm3nyySfbrQ8PD+f222/nj3/8I/PmzePCCy9k1qxZeumKhIQE/t//+38A7Nmzh8mTJ3P99dczfPhwvLy8WLFiBcXFxdxwww0AvP3227z88svMmDGDpKQkqquree211wgODubyyy/vtI33338/mzdv5o9//CPr16/n2muvxc/Pj//973+89957JCcn8/bbb7f73OWXX05QUBD33nsvnp6eXHvttTbvJyUl8eSTT/LAAw9QUFDA9OnTCQoKIj8/nxUrVrBgwQLuvffeLh3H0/HZZ591OBPDJZdcYlOGJDw8nPPOO4958+ZRXFzM0qVLGTRoELfeeivQWiy6K30B8MILL3DeeeeRmprKggULSExMpKCggK+++qrL50Ubjz/+OD/88ANXXHEFAwYM4Pjx47z88sv079+f8847r3sHRRCMwpCxr4Ig9JjTlREZMWJEh9v/+OOP2jnnnKP5+flpsbGx2u9+9zvtX//6lwZoa9as0bc7XRmRjspqANqjjz6qL5+ujMgdd9zR7rMDBgzQ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2bhxo9FN6jbPPPMM48ePJygoiKioKKZPn87u3btttrnoooswmUw2P7/+9a9ttjl06BBXXHEF/v7+REVF8dvf/paWlhZnqnSZxx57rJ3PsGHD9PcbGhq444476NOnD4GBgVx77bUUFxfb7MOdfNtISEho520ymbjjjjuA3tPPP/zwA9OmTSM2NhaTycTKlStt3tc0jUceeYS+ffvi5+dHRkYGe/futdmmrKyM2bNnExwcTGhoKLfccgs1NTU222zdupXzzz8fX19f4uLiePbZZx2t1imdeTc3N3PfffcxatQoAgICiI2N5eabb6awsNBmHx2dI3/4wx9stnEl7zP19dy5c9v5TJkyxWab3tbXQIe/5yaTieeee07fxt36uit/q+x17V67di2pqamYzWYGDRrEW2+9ZT8RTTCMjz76SPPx8dHefPNNbceOHdqtt96qhYaGasXFxUY3rVtcdtll2vLly7Xt27drubm52uWXX67Fx8drNTU1+jYXXnihduutt2rHjh3TfyorK/X3W1patJEjR2oZGRna5s2bta+//lqLiIjQHnjgASOUzsijjz6qjRgxwsanpKREf//Xv/61FhcXp3333XdaVlaWds4552iTJk3S33c33zaOHz9u47xq1SoN0NasWaNpWu/p56+//lp76KGHtM8//1wDtBUrVti8/4c//EELCQnRVq5cqW3ZskW76qqrtMTERK2+vl7fZsqUKdro0aO1DRs2aP/973+1QYMGabNmzdLfr6ys1KKjo7XZs2dr27dv1z788EPNz89P++tf/+oszXZ05l1RUaFlZGRoH3/8sbZr1y5t/fr12oQJE7S0tDSbfQwYMEB7/PHHbc6Bk68FruZ9pr6eM2eONmXKFBufsrIym216W19rmmbje+zYMe3NN9/UTCaTtn//fn0bd+vrrvytsse1+8CBA5q/v7+2aNEibefOndqLL76oeXp6at9++61dPCSAM5AJEyZod9xxh75ssVi02NhY7ZlnnjGwVfbj+PHjGqD95z//0dddeOGF2l133XXaz3z99deah4eHVlRUpK975ZVXtODgYK2xsdGRze0Wjz76qDZ69OgO36uoqNC8vb21Tz/9VF+Xl5enAdr69es1TXM/39Nx1113aUlJSZrVatU0rff1s6Zp7f64Wa1WLSYmRnvuuef0dRUVFZrZbNY+/PBDTdM0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",
      "text/plain": [
       "<Figure size 700x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(7, 4))\n",
    "\n",
    "plt.plot(np.array(train_losses), label='Train Loss', marker='o', color='#25599c', markersize=1)\n",
    "\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.title('Training Loss Over Epochs')\n",
    "plt.yscale('log')\n",
    "\n",
    "plt.legend()\n",
    "plt.grid(True, which='both', linestyle='--', linewidth=0.5) \n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c30911f-2a7a-4589-9b0b-471cd4891440",
   "metadata": {},
   "source": [
    "Indeed, the model is trained as it should. The final step is to evaluate its performance on the test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "7798eb68-d6b5-47ec-b845-cf3d60dccf23",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The MSE of the fit is 0.00564\n"
     ]
    }
   ],
   "source": [
    "y_pred = model(X_test)\n",
    "mse = mean_squared_error(y_test, y_pred)\n",
    "\n",
    "print(f\"The MSE of the fit is {mse:.5f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f061b2a3-b14c-4c82-a74d-c077016ca7a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGJCAYAAABW7E3LAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAApA5JREFUeJzs3Xd4FNX6wPHv9t1sNpueEEjovQooigqKKIiiiAIi3iuCer1ir3C9iIgKyg87dilWUCkqIIINRKo06b2TnrCbbC/z+yN314QkmEAKgffzPHl0Z2dmz5xMyJtz3nmPSlEUBSGEEEIIUWXUtd0AIYQQQohzjQRYQgghhBBVTAIsIYQQQogqJgGWEEIIIUQVkwBLCCGEEKKKSYAlhBBCCFHFJMASQgghhKhiEmAJIYQQQlQxCbCEEEIIIaqYBFhCnCGVSsWzzz5b6eMOHjyISqVixowZVd6mqnbFFVdwxRVXhF9XR9sbNWrE8OHDq+x84uwxY8YMVCoVBw8erO2mnJJKpeL++++v7WaIc4QEWOKcEPoHXKVSsWLFilLvK4pCamoqKpWK66+/vhZaePp+/fXX8LWpVCp0Oh1NmjThn//8J/v376/t5lXKypUrefbZZzlx4kRtN+Ws9N1339G/f3+SkpLQ6/XExsbSo0cPpkyZgt1ur+3mVZtQwF6RrzMN0uQeFDVFW9sNEKIqGY1GPv/8cy677LIS25ctW8bRo0cxGAy11LIz9+CDD3LhhRfi8/nYsGED77//PgsXLmTLli2kpKTUaFsaNmyIy+VCp9NV6riVK1cyfvx4hg8fTnR0dIn3du3ahVp9fv7NFwwGGTlyJDNmzKB9+/bcd999pKamUlBQwKpVq/jvf//LokWL+Omnn2q7qdUiISGBTz75pMS2KVOmcPToUV599dVS+56JU92DQlQlCbDEOaVfv3589dVXvPHGG2i1f93en3/+OV26dCEnJ6cWW3dmLr/8cm655RYA7rzzTlq0aMGDDz7IzJkzGTNmTJnHOBwOzGZzlbdFpVJhNBqr9Jx1Ofg9Uy+//DIzZszgkUceYcqUKahUqvB7Dz30EOnp6Xz88cenPEcwGMTr9Vb596UmmM1mbr/99hLbZs2aRX5+fqntxSmKgtvtxmQyVXcThai08/PPRXHOGjp0KLm5uSxdujS8zev18vXXX3PbbbeVeYzD4eCxxx4jNTUVg8FAy5Yt+b//+z8URSmxn8fj4ZFHHiEhIQGLxcINN9zA0aNHyzznsWPHGDFiBElJSRgMBtq2bcu0adOq7kKBXr16AXDgwAEAnn32WVQqFdu3b+e2224jJiamxEjep59+SpcuXTCZTMTGxnLrrbdy5MiRUud9//33adq0KSaTiYsuuojffvut1D7l5WDt3LmTwYMHk5CQgMlkomXLljz99NPh9j3xxBMANG7cuNSUT1k5WPv372fQoEHExsYSERHBxRdfzMKFC0vsE5pC/fLLL3nhhRdo0KABRqORq666ir1795bYd8+ePdx8880kJydjNBpp0KABt956Kzabrdx+vv/++4mMjMTpdJZ6b+jQoSQnJxMIBAD4448/6NOnD/Hx8ZhMJho3bsyIESPKPTeA0+nkpZdeom3btkyePLlEcBVSr149nnrqqRLbQvlCn332GW3btsVgMLB48WIANm7cyLXXXktUVBSRkZFcddVVrF69usTxofvlZGXlSzVq1Ijrr7+eFStWcNFFF2E0GmnSpEmZQd+2bdvo1asXJpOJBg0a8PzzzxMMBk/ZBxUVascPP/xA165dMZlMvPfee6fMCSyeI/l392DI/PnzadeuXfhnN9SvQlSGjGCJc0qjRo245JJL+OKLL7j22msB+P7777HZbNx666288cYbJfZXFIUbbriBX375hZEjR9KpUyd++OEHnnjiCY4dO1ZieuKuu+7i008/5bbbbqN79+78/PPPXHfddaXakJmZycUXXxz+BZiQkMD333/PyJEjsdvtPPzww1Vyrfv27QMgLi6uxPZBgwbRvHlzXnzxxXCQ+MILLzB27FgGDx7MXXfdRXZ2Nm+++SY9evRg48aN4amSjz76iH/96190796dhx9+mP3793PDDTcQGxtLamrqKdvz559/cvnll6PT6bjnnnto1KgR+/bt47vvvuOFF15g4MCB7N69my+++IJXX32V+Ph4oPwpn8zMTLp3747T6eTBBx8kLi6OmTNncsMNN/D1119z0003ldh/0qRJqNVqHn/8cWw2Gy+//DLDhg1jzZo1QFGg3adPHzweDw888ADJyckcO3aMBQsWcOLECaxWa5ntGDJkCFOnTmXhwoUMGjQovN3pdPLdd98xfPhwNBoNWVlZXHPNNSQkJDB69Giio6M5ePAgc+fOPWW/rVixghMnTvD444+j0WhOue/Jfv75Z7788kvuv/9+4uPjadSoEdu2bePyyy8nKiqKJ598Ep1Ox3vvvccVV1zBsmXL6NatW6U+I2Tv3r3ccsstjBw5kjvuuINp06YxfPhwunTpQtu2bQHIyMjgyiuvxO/3M3r0aMxmM++//36VjjDt2rWLoUOH8q9//Yu7776bli1bVvjYityDK1asYO7cudx3331YLBbeeOMNbr75Zg4fPlzqZ02IU1KEOAdMnz5dAZR169Ypb731lmKxWBSn06koiqIMGjRIufLKKxVFUZSGDRsq1113Xfi4+fPnK4Dy/PPPlzjfLbfcoqhUKmXv3r2KoijKpk2bFEC57777Sux32223KYAybty48LaRI0cq9erVU3Jyckrse+uttypWqzXcrgMHDiiAMn369FNe2y+//KIAyrRp05Ts7Gzl+PHjysKFC5VGjRopKpVKWbdunaIoijJu3DgFUIYOHVri+IMHDyoajUZ54YUXSmzfsmWLotVqw9u9Xq+SmJiodOrUSfF4POH93n//fQVQevbsGd5WVtt79OihWCwW5dChQyU+JxgMhv9/8uTJCqAcOHCg1HU2bNhQueOOO8KvH374YQVQfvvtt/C2goICpXHjxkqjRo2UQCBQon9at25dot2vv/66AihbtmxRFEVRNm7cqADKV199VeqzTyUYDCr169dXbr755hLbv/zySwVQli9friiKosybNy98D1ZGqJ3z588vsd3v9yvZ2dklvor3JaCo1Wpl27ZtJY4bMGCAotfrlX379oW3HT9+XLFYLEqPHj3C20L3y8lCP0vFv0cNGzYsca2KoihZWVmKwWBQHnvssfC20PdszZo1JfazWq3lft/Lc9111ykNGzYssS3UjsWLF5fYfqqfpZN/Pk91DwKKXq8P/9wriqJs3rxZAZQ333yzwm0XQlEURaYIxTln8ODBuFwuFixYQEFBAQsWLCh3enDRokVoNBoefPDBEtsfe+wxFEXh+++/D+8HlNrv5NEoRVGYM2cO/fv3R1EUcnJywl99+vTBZrOxYcOG07quESNGkJCQQEpKCtdddx0Oh4OZM2fStWvXEvvde++9JV7PnTuXYDDI4MGDS7QnOTmZ5s2b88svvwBF01tZWVnce++96PX68PHDhw8vd3QnJDs7m+XLlzNixAjS0tJKvFfWNFRFLFq0iIsuuqjENGdkZCT33HMPBw8eZPv27SX2v/POO0u0+/LLLwcIP2kZuoYffvihzOm+8qhUKgYNGsSiRYsoLCwMb589ezb169cPty80CrhgwQJ8Pl+Fzx96OjAyMrLE9i1btpCQkFDiKzc3t8Q+PXv2pE2bNuHXgUCAJUuWMGDAAJo0aRLeXq9ePW677TZWrFhx2k8jtmnTJtynUDTq07JlyxJPsi5atIiLL76Yiy66qMR+w4YNO63PLEvjxo3p06dPlZ3vZL1796Zp06bh1x06dCAqKqrOPbErap8EWOKck5CQQO/evfn888+ZO3cugUAgnBx+skOHDpGSkoLFYimxvXXr1uH3Q/9Vq9Ul/uEFSk1PZGdnc+LECd5///1SvxzvvPNOALKysk7rup555hmWLl3Kzz//zJ9//snx48f5xz/+UWq/xo0bl3i9Z88eFEWhefPmpdq0Y8eOcHtC19q8efMSx4fKQpxK6JdPu3btTuvaynLo0KEyp39O/t6EnBzYxcTEAJCfnw8U9cujjz7Khx9+SHx8PH369GHq1KmnzL8KGTJkCC6Xi2+//RaAwsJCFi1axKBBg8IBZM+ePbn55psZP3488fHx3HjjjUyfPh2Px3PKc4fuveLBG0CzZs1YunQpS5cuLfP7HLqm4rKzs3E6neX2WzAYLDPvriJO7l8o6uNQ/0LR9+Tk+wdK/5yciZOvuapV5DqFqAjJwRLnpNtuu427776bjIwMrr322hp7HDuUzHv77bdzxx13lLlPhw4dTuvc7du3p3fv3n+738n5LsFgEJVKxffff19mjs/JIyd1VXn5S0qxhxWmTJnC8OHD+eabb1iyZAkPPvggEydOZPXq1TRo0KDcc1988cU0atSIL7/8kttuu43vvvsOl8vFkCFDwvuoVCq+/vprVq9ezXfffccPP/zAiBEjmDJlCqtXry63n1u1agXA1q1bufHGG8PbIyMjw9/vsmq7QenvdWWUN7IYStg/WUX6tyaUdc2VvZZTOVuuU9R9MoIlzkk33XQTarWa1atXlzs9CEX1nI4fP05BQUGJ7Tt37gy/H/pvMBgMJ5aH7Nq1q8Tr0BOGgUCA3r17l/mVmJhYFZdYYU2bNkVRFBo3blxmey6++GLgr2vds2dPieN9Pl/4ScXyhEa4tm7desr9KjNd2LBhw1L9C6W/N5XVvn17/vvf/7J8+XJ+++03jh07xrvvvvu3xw0ePJjFixdjt9uZPXs2jRo1CvddcRdffDEvvPACf/zxB5999hnbtm1j1qxZ5Z738ssvx2q1MmvWrDN+2i4hIYGIiIhy+02tVocfVgiN8J1ccPPkkcHKaNiwYan7B0r/nFS1ylzL6U5ZC1FZEmCJc1JkZCTvvPMOzz77LP379y93v379+hEIBHjrrbdKbH/11VdRqVThJxFD/z35KcTXXnutxGuNRsPNN9/MnDlzygw2srOzT+dyzsjAgQPRaDSMHz++1F/hiqKE83q6du1KQkIC7777Ll6vN7zPjBkz/rbqdUJCAj169GDatGkcPny41GeEhGpyVaSKdr9+/Vi7di2rVq0Kb3M4HLz//vs0atSoRO5RRdjtdvx+f4lt7du3R61W/+00HhRNE3o8HmbOnMnixYsZPHhwiffz8/NL9W+nTp0ATnn+iIgInnzySbZu3cro0aPLHCmp6OiJRqPhmmuu4ZtvvilReiAzMzNcgDcqKgogPN29fPny8H6hvL7T1a9fP1avXs3atWvD27Kzs/nss89O+5wVERUVRXx8fIlrAXj77bdL7VuZe1CIMyFThOKcVd4UXXH9+/fnyiuv5Omnn+bgwYN07NiRJUuW8M033/Dwww+Hfwl16tSJoUOH8vbbb2Oz2ejevTs//fRTqTpLUFQu4JdffqFbt27cfffdtGnThry8PDZs2MCPP/5IXl5elV/rqTRt2pTnn3+eMWPGcPDgQQYMGIDFYuHAgQPMmzePe+65h8cffxydTsfzzz/Pv/71L3r16sWQIUM4cOAA06dP/9scLCgKPi+77DI6d+7MPffcQ+PGjTl48CALFy5k06ZNAHTp0gWAp59+mltvvRWdTkf//v3LLIY6evTocLmNBx98kNjYWGbOnMmBAweYM2dOpau+//zzz9x///0MGjSIFi1a4Pf7+eSTT8JB8d/p3LkzzZo14+mnn8bj8ZSYHgSYOXMmb7/9NjfddBNNmzaloKCADz74gKioKPr163fKc48ePZodO3YwefJklixZws0330yDBg3Iz89nw4YNfPXVVyQmJlaoiOjzzz/P0qVLueyyy7jvvvvQarW89957eDweXn755fB+11xzDWlpaYwcOZInnngCjUbDtGnTSEhIKBUkV9STTz7JJ598Qt++fXnooYfCZRoaNmzIn3/+eVrnrKi77rqL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304i4HWe0ecAJf4b+n+DwUC9evVo1KgR9913H7179+a7775DpVJx5513ctNNN/Hiiy9Sv359WrVqhUql4ujRowwZMoSYmBji4uIYMGAAhw4dCp83GAzy2GOPERMTQ3x8PE899VR4eiy0z5VXXskjjzwSfu31ehk9ejRpaWkYjUaaN2/OtGnTOHToEL169QIgNjYWtVrNnXfeiUqlQlEUJk2aRJMmTYiIiKBTp07MmTOnxHV///33tGzZkoiICHr16sWhQ4dKtOPkr2HDhnHrrbeW2Ob3+0lISOCTTz5BpVIxZ84cOnToQEREBPHx8Vx99dU4nWV/f0KfNX36dK6//nruu+8+Zs2ahdvtLrGfzWbj3nvvJTk5OfyU68KFC1m2bBkjRozAZrOF77fx48ejUhX91fTNN9+UOE9MTAwzZ84Mvx49ejQtW7bEbDbTtGlTnnnmGfx+f5ltLO+rvPv+bP+qy22vy1/S79Ln58rXmh0Z3Dz2Oz7/cWd4W6/OaXw29jo6NEuskX6viFoNsC699FJ27dpVYtvu3btp2LBhLbXoL36vG5/LjsuWyaa543EX5AJFI1eb5o7HZcvE57Lj97r/5kxVw2Qy4fV6w69/+ukndu3axdKlS1mwYAE+n48+ffpgsVj47bff+P3334mMjKRv377h46ZMmcKMGTOYNm0aK1asIC8vL5x7VZ5//vOffPHFF7zxxhvs2LGD9957j8jISFJTU5kzZw4Au3btIj09nddffx0omsr9+OOPeffdd9m2bRuPPPIIt99+O8uWLQPgyJEjDBw4kP79+7Np0ybuuusuRo8efcp2DBs2jO+++47CwsLwth9++AGn08lNN91Eeno6Q4cOZcSIEezYsYNff/2VgQMHnjK/SlEUZsyYwe23306rVq1o1qwZX3/9dfj9YDDItddey++//86nn37K9u3bmTRpEhqNhu7du/Paa68RFRVFeno66enpPP7446e8huIsFgszZsxg+/btvP7663zwwQe8+uqrFT5eCCHON/uPn+De/1vKHS98z85DeXzyw3b8gaJ8qOJ/mJ41lFq0du1aRavVKi+88IKyZ88e5bPPPlMiIiKUTz/9tELH22w2BVBsNlup91wul7J9+3bF5XKddvtc9hxl1YwHlJ9fH6ysmvGAcuLYzhKvXfac0z53SDAYVLxerxIMBsPb7rjjDuXG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",
      "text/plain": [
       "<Figure size 700x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(7, 4))\n",
    "plt.scatter(y_test, y_pred, alpha=0.7, color='#a3630f', marker='x', label='Predicted vs Actual')\n",
    "plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], color='#25599c', linestyle='--', label='Perfect Fit')\n",
    "plt.xlabel('Actual Values')\n",
    "plt.ylabel('Predicted Values')\n",
    "plt.title('Model Predictions vs Ground Truth')\n",
    "plt.legend()\n",
    "plt.grid(alpha=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "88cc341a-8869-4dd9-be77-ef9bf2d8b5c1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
